Solid state drives (SSDs) are data storage devices that use solid-state memory to store persistent data. An SSD emulates a hard disk drive interface, thus easily replacing it in most applications. An SSD connects to a personal computer (PC) via a standardized electrical communication protocol and a physical interface connector. Common examples of SSDs are battery backed dynamic random access memory (DRAM) volatile memory, NAND/NOR-based flash memory, and other non-volatile storage class technologies. SSDs can have different form factors. SSDs are a relatively new product, and the industry is in the process of defining how to test them. Testing a variety of form factors and interface standards presents both mechanical and protocol/electrical challenges. In order to test an SSD, the tester needs to be able to connect via the physical connector, and support the interface protocol and electrical signaling.
Currently, the predominant testing architecture uses PC-based testers. A PC may connect to a storage device through a host bus adapter (HBA) and a cable. The HBA and its software drivers provide the physical connector, the communication protocol, and electrical engine to convert operating system and storage protocol level commands from the computer into commands that the storage device can understand. The HBA may plug into the motherboard. The PC motherboard may include a central processing unit (CPU), memory, and the buses and controller chips to run the CPU, memory, and host bus adapters. An operating system and drivers are required to run programs on the PC. The CPU and memory act as a shared pattern generator resource by running a program to send and receive data from the storage device. A problem with PC-based testers is that they have performance and parallelism limitations that are based on the performance of the components used. In addition, ways to enhance performance and increase parallelism can be costly.